local desc = [[
# 象棋简介

象棋（“中国象棋”），是一种两人参与的对抗性棋类运动。两人各执红、黑棋子，在象棋盘上对弈，以“将死”对方的“将（帅）”为胜。

# 棋盘和棋子

## 棋盘

象棋盘由九道纵线和十道横线交叉组成。
棋盘上共有九十个点，象棋子摆放和活动在这些交叉点上。

棋盘中间直线断开处，称为“河界”，河界内标注“楚河汉界”；
两端画有斜交叉线的地方，称为“九宫”。“九宫”位于棋盘的两端，有3×3共9个点。

标记上，九道直线，红棋方面从右到左用中文数字一至九来标识，黑棋方面从右到左用阿拉伯数字 1 至 9 来标识。

## 棋子

棋子共有三十二个，分为红、黑两组，每组十六个，各分七种，其名称和数目如下：

红棋子：帅一个，车、马、炮、仕、相各两个，兵五个。

黑棋子：将一个，车、马、砲、士、象各两个，卒五个。

走法上，红“帅”=黑“将”，红“炮”=黑“砲”，红“仕”=黑“士”，红“相”=黑“象”，红“兵”=黑“卒”。下文只以红方棋子名称呼。

## 布局

对局开始前，双方棋子在棋盘上按规定摆放好。

# 行棋和吃子

## 行棋

对局时，由执红棋的一方先走，双方轮流各走一着，直至分出胜、负、和，对局即终了。双方各走一着，称为一个回合。

行棋方将某个棋子从一个点走到另一个点，即为一着。走一着棋时，如果己方棋子能够走到的点有对方棋子存在，就可以把对方棋子吃掉而占领该点，但不可以吃己方的棋子。（被吃掉的棋子本局不再使用）

## 棋子的走法

**帅**每着只许走一格，只能在“九宫”内前、后、左、右移动。
任何一方走之后，都不准造成帅、将在同一条线上直接对面。

**仕**每着只许沿“九宫”斜线走一格，可进可退。

**相**不能越过“河界”，每着斜走两格，可进可退，即俗称“相走田字”。
当“田”字中心有棋子（无论何方）占据，俗称“塞相眼”，则不许进或退。

**马**每着走一直（一横）一斜，可进可退，即俗称“马走日字”。
如果在先直（横）的那个交叉点有棋子（无论何方）占据，俗称“蹩马腿”，则不许进或退。

**车**（jū）每着可以直进、直退、横走，不限格数，但不可隔子而行。

**炮**的走法同车一样；吃子时必须隔一个棋子（无论何方）跳吃，即俗称“炮打隔子”。

**兵**在过“河界”前，每着只许向前直走一格；过“河界”后，每着可向前直走或横走一格，但不能后退。

# 胜负

一方棋子攻击对方的帅（即如果帅不走，在下一着该棋子能将其吃掉），称为“**将军**”，或简称“**将**”。

被“将军”方必须立即“**应将**”，即通过一着解除将军，如果无法“应将”或不“应将”，即被“将死”。

轮到行棋的一方无子可走，即被“**困毙**”。

被“将死”和“困毙”的一方为负，另一方为胜。

“**长将**”指走子连续不停将军而形成循环达三次。单方长将者判负，另一方获胜。

]]

local mode = fk.CreateGameMode {
  name = "xiangqi",
  minPlayer = 2,
  maxPlayer = 2,

  surrender_func = function (self, playedTime)
    return {{ text = "投子认负（十回合后可用）" , passed = Fk:currentRoom():getBanner("RoundCount") > 10}}
  end,
  winner_getter = function(self, victim)
    if not victim.surrendered then
      return ""
    end

    return victim.next.role .. "+s"
  end,
}
mode.game_name = "xiangqi"

Fk:loadTranslationTable {
  ["xiangqi"] = "象棋",
  [":xiangqi"] = desc,
}

return mode
